package br.com.pucrs.tcc.bd;

import org.hibernate.SQLQuery;
import org.hibernate.Session;

import br.com.pucrs.tcc.ed.Nota;

public class NotaBD {
	
	private Session mSession;
	
	public NotaBD (Session session) {
		mSession = session;
	}
	
	public void inclui (Nota nota) {
		mSession.saveOrUpdate(nota);
		mSession.flush();
	}
	
	public void alterar(Nota nota) {
		mSession.update(nota);
		mSession.flush();
	}
	
	public void delete(Nota nota) {
		mSession.delete(nota);
		mSession.flush();
	}
	
	public Nota obter(Nota nota) {
		Nota retorno = null;
		
		StringBuilder sql = new StringBuilder();

		sql.append(" SELECT n.* ");
		sql.append("   FROM notas n");
		sql.append("  WHERE n.grupos_trabalho_id = ?");
		sql.append("    AND n.tipo = ?");

		SQLQuery query = mSession.createSQLQuery(sql.toString());
		query.addEntity(Nota.class);
		query.setInteger(0, nota.getGruposTrabalho().getId());
		query.setInteger(1, nota.getTipo());
		
		retorno = (Nota) query.uniqueResult();
		
		return retorno;
	}

}
